import 'package:equatable/equatable.dart';
import 'package:backend.purchases/domain/entities/google_play_api/google_play_api_purchased_subscription_cancellation_survey_result.dart';

abstract class GooglePlayApiPurchasedSubscriptionCancellationInfo {}

class GooglePlayApiPurchasedSubscriptionUserCancellationInfo extends Equatable
    implements GooglePlayApiPurchasedSubscriptionCancellationInfo {
  const GooglePlayApiPurchasedSubscriptionUserCancellationInfo({
    required this.time,
    required this.surveyResult,
  });

  final DateTime time;
  final GooglePlayApiPurchasedSubscriptionCancellationSurveyResult surveyResult;

  @override
  List<Object?> get props {
    return [
      time,
      surveyResult,
    ];
  }
}

class GooglePlayApiPurchasedSubscriptionSystemCancellationInfo extends Equatable
    implements GooglePlayApiPurchasedSubscriptionCancellationInfo {
  const GooglePlayApiPurchasedSubscriptionSystemCancellationInfo();

  @override
  List<Object?> get props => [];
}

class GooglePlayApiPurchasedSubscriptionDeveloperCancellationInfo extends Equatable
    implements GooglePlayApiPurchasedSubscriptionCancellationInfo {
  const GooglePlayApiPurchasedSubscriptionDeveloperCancellationInfo();

  @override
  List<Object?> get props => [];
}

class GooglePlayApiPurchasedSubscriptionNewSubscriptionCancellationInfo extends Equatable
    implements GooglePlayApiPurchasedSubscriptionCancellationInfo {
  const GooglePlayApiPurchasedSubscriptionNewSubscriptionCancellationInfo();

  @override
  List<Object?> get props => [];
}
